﻿
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0014)about:internet -->
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mssdk="winsdk" xmlns:script="urn:script" xmlns:build="urn:build" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Description" content="Symbols and Symbol Files"/>
<meta name="MSHAttr" content="PreferredSiteName:MSDN"/>
<meta name="MSHAttr" content="PreferredLib:/library/windows/hardware"/>
<title>Symbols and Symbol Files</title>

<meta name="MS-HAID" content="r09_symbols_2725b901-b583-4abb-83cd-cbb72f6851a3.xml"/>


<link rel="STYLESHEET" type="text/css" HREF="../common/backsdk4.css"/>





<style>
html,div { margin: 0; padding: 0;}

body {
	padding: 0px;
	margin: 0px;
	overflow: auto;
	height: 100%;
}

#winchm_template_button{
	float: right;
	width: 93px;
	top: 7px;
	position: relative;
	text-align: right;
	right: 5px;
	height: auto;
}

#winchm_template_top{
	padding: 0px;
	margin: 0px;
	border-bottom: 1px solid #9B9B9B;
	background-color: #B1CEFE;
}

#winchm_template_navigation{
	margin: 0px;
	padding-top: 7px;
	padding-left: 7px;
	padding-bottom: 3px;
	padding-right: 0px;
	font-size: 8.5pt;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: normal;
	color: #585858;
}

#winchm_template_title{
	margin: 0px;
	padding-top: 4px;
	padding-left: 7px;
	padding-bottom: 7px;
	padding-right: 0px;
	font-size: 18px; 
	font-family: Verdana, Geneva, sans-serif;
	color: #363636;
}

#winchm_template_content{
	margin-top: 20px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	width: auto  !important;
	width: 100%;
}

#winchm_template_footer{
	border-width: 1px;
	border-color: #B1CEFE;
	border-top-style: solid;
	margin-top: 15px;
	margin-left: 15px;
	margin-bottom: 20px;
	margin-right: 15px;
	padding-top: 7px;
	padding-left: 0px;
	padding-bottom: 0px;
	padding-right: 0px;
	font-family: arial, helvetica, sans-serif;
	font-size: 8.5pt;
	color: #696969;
	width: auto;
	text-align: left;
}


#winchm_template_container{
	margin: 0px;
	padding: 0px;
	position: static;
	padding-bottom: 3px;
	overflow: auto;
	background-color: #FFFFFF;
}


@media print
{
#winchm_template_container{
	position: static;	
	margin: 0px;
	padding: 5px;
	
	width: auto;
	height: auto;
	overflow: auto;
}
#winchm_template_button{
visibility:hidden;
}
}

#winchm_template_navigation A:link	{text-decoration: none; color:#004080}
#winchm_template_navigation A:visited  {text-decoration: none; color: #004080}
#winchm_template_navigation A:active {text-decoration: none; color: #004080 }
#winchm_template_navigation A:hover {text-decoration: none;color: #0080FF}

A:link	{text-decoration: underline; color:#0033CC}
A:visited  {text-decoration: underline; color: #0033CC}
A:active {text-decoration: underline; color: #0033CC }
A:hover {text-decoration: underline;color: #FF0000;}
</style>
<script type="text/javascript">
function isMobile(){
Agent = window.navigator.userAgent;
if (Agent.indexOf("iPhone")>=1 || Agent.indexOf("iPad")>=1 || Agent.indexOf("iPod")>=1 || Agent.indexOf("Android")>=1){
return true;
}else{
return false;	
}

}
function d_onresize(){
if (window.navigator.userAgent.indexOf("MSIE")>=1){
document.getElementById('winchm_template_container').style.pixelWidth = document.body.offsetWidth - 3;
document.getElementById('winchm_template_container').style.pixelHeight = document.body.offsetHeight - document.getElementById('winchm_template_top').offsetHeight - 4;
}
document.getElementById('winchm_template_container').style.top = document.getElementById('winchm_template_top').offsetHeight + 'px';
}

function d_onbeforeprint(){
document.getElementById('winchm_template_container').style.width = 'auto';
document.getElementById('winchm_template_container').style.height = 'auto';
}

function d_onafterprint(){
d_onresize();
}

if(!isMobile()){

window.onload = d_onresize;
window.onresize = d_onresize;
window.onbeforeprint = d_onbeforeprint;
window.onafterprint = d_onafterprint;

document.write("<style>\n");
document.write("body {overflow: hidden;}\n");
document.write("#winchm_template_container {position: absolute;overflow: auto;top : 0px;right: 0px;bottom: 0px;left: 0px;}\n");
document.write("</style>\n");
}

</script>
</head>
<body><script language="JavaScript" type="text/JavaScript">
function syn(){
if(parent.nav.tree){
 if(parent.nav.tree.loaded){
  parent.nav.tree.selectNode(1497);
 }else{
  setTimeout("syn()",500);
}
  }else{
  setTimeout("syn()",500);
  }}
if(parent!=self){
  setTimeout("syn()",100);
}else{
  parent.location.href = "../../index.htm?page=debugger/symbols_and_symbol_files.htm";
}
originalOnload = window.onload;
if(originalOnload==null){
window.onload = function(){parent.contentLoaded = true;};
}else{
window.onload = function(){originalOnload();parent.contentLoaded = true;};
}
</script> 


<div id="winchm_template_top">
	<div id="winchm_template_button"><A href="symbol_path.htm" title="Previous topic"><img id="winchm_template_prev" alt="Previous topic" src="../template2/btn_prev_n.gif" border="0"></a><A href="public_and_private_symbols.htm" title="Next topic"><img id="winchm_template_next" alt="Next topic" src="../template2/btn_next_n.gif" border="0"></a></div>
	<div id="winchm_template_navigation">Help &gt; 
<A href="introduction6.htm">Debugging Tools for Windows (WinDbg, KD, CDB, NTSD)</A> &gt; <A href="symbols.htm">Symbols for Windows Debugging (WinDbg, KD, CDB, NTSD)</A> &gt; <A href="introduction_to_symbols.htm">Introduction to Symbols</A> &gt; </div>
	<div id="winchm_template_title">Symbols and Symbol Files</div>
</div>
<div id="winchm_template_container">
	<div id="winchm_template_content"><div id="mainSection"><p>When applications, libraries, drivers, or operating systems are linked, the linker that creates the .exe and .dll files also creates a number of additional files known as <i>symbol files</i>.</p>
<p>Symbol files hold a variety of data which are not actually needed when running the binaries, but which could be very useful in the debugging process.</p>
<p>Typically, symbol files might contain:</p>
<ul>
<li>
<p>Global variables</p>
</li>
<li>
<p>Local variables</p>
</li>
<li>
<p>Function names and the addresses of their entry points</p>
</li>
<li>
<p>Frame pointer omission (FPO) records</p>
</li>
<li>
<p>Source-line numbers</p>
</li>
</ul>
<p>Each of these items is called, individually, a <i>symbol</i>.  For example, a single symbol file Myprogram.pdb might contain several hundred symbols, including  global variables and function names and hundreds of local variables.  Often, software companies release two versions of each symbol file:  a full symbol file containing both <i>public symbols</i> and <i>private symbols</i>, and a reduced (stripped) file containing only public symbols.  For details, see <a href="#Bookmark1498">Public and Private Symbols</a>.</p>
<p>When debugging, you must make sure that the debugger can access the symbol files that are associated with the target you are debugging.  Both live debugging and debugging crash dump files require symbols. You must obtain the proper symbols for the code that you wish to debug, and load these symbols into the debugger.</p>
<h3><a id="windows_symbols"></a><a id="WINDOWS_SYMBOLS"></a>Windows Symbols</h3>
<p>Windows keeps its symbols in files with the extension .pdb. </p>
<p>The compiler and the linker control the symbol format. The Visual C++ linker, places all symbols into .pdb files.</p>
<p>The Windows operating system is built in two versions. The <i>free build</i> (or <i>retail build</i>) has relatively small binaries, and the <i>checked build</i> (or <i>debug build</i>) has larger binaries, with more debugging symbols in the code itself. Each of these builds has its own symbol files. When debugging a target on Windows, you must use the symbol files that match the build of Windows on the target.</p>
<p>The following table lists several of the directories which exist in a standard Windows symbol tree:</p>
<table>
<tr>
<th>Directory</th>
<th>Contains Symbol Files for</th>
</tr>
<tr>
<td>
<p>ACM</p>
</td>
<td>
<p>Microsoft Audio Compression Manager files</p>
</td>
</tr>
<tr>
<td>
<p>COM</p>
</td>
<td>
<p>Executable files (.com)</p>
</td>
</tr>
<tr>
<td>
<p>CPL</p>
</td>
<td>
<p>Control Panel programs </p>
</td>
</tr>
<tr>
<td>
<p>DLL</p>
</td>
<td>
<p>Dynamic-link library files (.dll)</p>
</td>
</tr>
<tr>
<td>
<p>DRV</p>
</td>
<td>
<p>Driver files (.drv) </p>
</td>
</tr>
<tr>
<td>
<p>EXE</p>
</td>
<td>
<p>Executable files (.exe) </p>
</td>
</tr>
<tr>
<td>
<p>SCR</p>
</td>
<td>
<p>Screen-saver files</p>
</td>
</tr>
<tr>
<td>
<p>SYS</p>
</td>
<td>
<p>Driver files (.sys) </p>
</td>
</tr>
</table>
<p> </p></div></div>	
	<div id="winchm_template_footer">Copyright &copy; 2019. All rights 
reserved. (To change the copyright info, just edit it in template.)</div>
</div>

</body>
</html>
